package ejbentidad;

import java.util.List;
import modelo33.PoliciaJ;
import modelo33.Policia;
import modelo33.PersonaT;
import modelo33.Persona;
import modelo33.PersonaJ;
import modelo33.PoliciaT;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;

public class Herencia {

    public static void main(String[] args) {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("EJBEntidadPU");
        EntityManager em = emf.createEntityManager();
        em.getTransaction().begin();
        try {
            Persona per = new Persona();
            per.setNombre("Jose");
            em.persist(per);
            
            Policia pol = new Policia();
            pol.setNombre("Luis");
            pol.setNumeroPlaca("1234");
            em.persist(pol);

            PersonaJ perj = new PersonaJ();
            perj.setNombre("Jose");
            em.persist(perj);
            
            PoliciaJ polj = new PoliciaJ();
            polj.setNombre("Luis");
            polj.setNumeroPlaca("1234");
            em.persist(polj);            

            PersonaT perT = new PersonaT();
            perT.setNombre("Jose");
            em.persist(perT);
            
            PoliciaT polT= new PoliciaT();
            polT.setNombre("Luis");
            polT.setNumeroPlaca("1234");
            em.persist(polT);              
            
            
            String entidades[] = {"Persona","PersonaJ","PersonaT"};
            for (String entidad : entidades) {
                Query q = em.createQuery("SELECT p FROM "+entidad+" p");
                List res = q.getResultList();
                System.out.println(res);
                System.out.println("-----");
            }
            
            em.getTransaction().commit();
        } catch (Exception e) {
            e.printStackTrace();
            em.getTransaction().rollback();
        } finally {
            em.close();
        }


    }
}
